package com.yunke.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import com.yunke.common.base.YunkeBaseEntity;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;

/**
 * 服务评价实体类
 * 
 * @author yunke
 * @since 1.0.0
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("dz_service_review")
@Schema(description = "服务评价")
public class YunkeServiceReview extends YunkeBaseEntity {

    /**
     * 服务ID
     */
    @Schema(description = "服务ID")
    private Long serviceId;

    /**
     * 订单ID
     */
    @Schema(description = "订单ID")
    private Long orderId;

    /**
     * 评价者用户ID
     */
    @Schema(description = "评价者用户ID")
    private Long userId;

    /**
     * 被评价者用户ID（服务提供者）
     */
    @Schema(description = "被评价者用户ID")
    private Long targetUserId;

    /**
     * 评价类型：1-买家评价卖家 2-卖家评价买家
     */
    @Schema(description = "评价类型：1-买家评价卖家 2-卖家评价买家")
    private Integer reviewType;

    /**
     * 综合评分（1-5分）
     */
    @Schema(description = "综合评分（1-5分）")
    private BigDecimal rating;

    /**
     * 服务态度评分（1-5分）
     */
    @Schema(description = "服务态度评分（1-5分）")
    private BigDecimal serviceRating;

    /**
     * 专业能力评分（1-5分）
     */
    @Schema(description = "专业能力评分（1-5分）")
    private BigDecimal skillRating;

    /**
     * 时效性评分（1-5分）
     */
    @Schema(description = "时效性评分（1-5分）")
    private BigDecimal timeRating;

    /**
     * 性价比评分（1-5分）
     */
    @Schema(description = "性价比评分（1-5分）")
    private BigDecimal valueRating;

    /**
     * 评价内容
     */
    @Schema(description = "评价内容")
    private String content;

    /**
     * 评价图片（多张，逗号分隔）
     */
    @Schema(description = "评价图片")
    private String images;

    /**
     * 是否匿名：0-否 1-是
     */
    @Schema(description = "是否匿名：0-否 1-是")
    private Integer isAnonymous;

    /**
     * 评价标签（多个标签逗号分隔）
     */
    @Schema(description = "评价标签")
    private String tags;

    /**
     * 回复内容（服务提供者回复）
     */
    @Schema(description = "回复内容")
    private String replyContent;

    /**
     * 回复时间
     */
    @Schema(description = "回复时间")
    private Long replyTime;

    /**
     * 审核状态：0-待审核 1-审核通过 2-审核拒绝
     */
    @Schema(description = "审核状态：0-待审核 1-审核通过 2-审核拒绝")
    private Integer auditStatus;

    /**
     * 审核意见
     */
    @Schema(description = "审核意见")
    private String auditRemark;

    /**
     * 点赞次数
     */
    @Schema(description = "点赞次数")
    private Integer likeCount;

    /**
     * 是否置顶：0-否 1-是
     */
    @Schema(description = "是否置顶：0-否 1-是")
    private Integer isTop;

    /**
     * 评价权重（用于排序）
     */
    @Schema(description = "评价权重")
    private Integer weight;

    /**
     * 评价时间
     */
    @Schema(description = "评价时间")
    private Long reviewTime;
} 